/**
 * Yolema.com Inc.
 * Copyright (c) 2011-2012 All Rights Reserved.
 */
package org.grayrabbit.pay.core.model.utils;

import java.util.Hashtable;
import java.util.List;
import java.util.Map;

import org.grayrabbit.pay.core.model.entity.system.AppSystem;

/**
 * 将应用系统缓存到内存中
 * 
 * @author wy
 * @version $Id: AppSystemUtil.java, v 0.1 2012-6-5 下午10:08:27 wy Exp $
 */
public class AppSystemUtil {
    
    /**存储的应用系统*/
    private final static Map<String, AppSystem> SYSTEM_MAP = new Hashtable<String, AppSystem>();

    /**
     * 添加所有可用的应用系统
     * 
     * @param list
     */
    public static void putAllAppSystem(List<AppSystem> list) {
        for (int i = 0; i < list.size(); i++) {
            putAppSystem(list.get(i));
        }
    }

    /**
     * 添加单个系统，用于更新或者添加
     * 
     * @param appSystem
     */
    public static void putAppSystem(AppSystem appSystem) {
        if(appSystem.getIsEnabled()!=null&&appSystem.getIsEnabled()){
            SYSTEM_MAP.put(appSystem.getAppCode(), appSystem);
        }
    }

    /**
     * 移除某个应用系统
     * 
     * @param appSystem
     */
    public static void removeAppSystem(AppSystem appSystem) {
        removeAppSystem(appSystem.getAppCode());
    }

    /**
     * 移除某个应用系统
     * 
     * @param systemCode
     */
    public static void removeAppSystem(String systemCode) {
        SYSTEM_MAP.remove(systemCode);
    }
    
    /**
     *  通过系统code 获取某个应用系统
     * 
     * @param systemCode
     * @return
     */
    public static AppSystem getAppSystem(String systemCode){
        return SYSTEM_MAP.get(systemCode);
    }

}
